(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
not(tt) → ff
not(ff) → tt
or(tt, x) → tt
or(ff, x) → x
eq(0, 0) → tt
eq(s(x), 0) → ff
eq(0, s(y)) → ff
eq(s(x), s(y)) → eq(x, y)
main(phi) → ver(phi, nil)
in(x, nil) → ff
in(x, cons(a, l)) → or(eq(x, a), in(x, l))
ver(Var(x), t) → in(x, t)
ver(Or(phi, psi), t) → or(ver(phi, t), ver(psi, t))
ver(Not(phi), t) → not(ver(phi, t))
ver(Exists(n, phi), t) → or(ver(phi, cons(n, t)), ver(phi, t))
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
MAIN(z0) → c8(VER(z0, nil))
IN(z0, cons(z1, z2)) → c10(OR(eq(z0, z1), in(z0, z2)), EQ(z0, z1), IN(z0, z2))
VER(Var(z0), t) → c11(IN(z0, t))
VER(Or(z0, z1), t) → c12(OR(ver(z0, t), ver(z1, t)), VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(NOT(ver(z0, t)), VER(z0, t))
VER(Exists(z0, z1), t) → c14(OR(ver(z1, cons(z0, t)), ver(z1, t)), VER(z1, cons(z0, t)), VER(z1, t))
S tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
MAIN(z0) → c8(VER(z0, nil))
IN(z0, cons(z1, z2)) → c10(OR(eq(z0, z1), in(z0, z2)), EQ(z0, z1), IN(z0, z2))
VER(Var(z0), t) → c11(IN(z0, t))
VER(Or(z0, z1), t) → c12(OR(ver(z0, t), ver(z1, t)), VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(NOT(ver(z0, t)), VER(z0, t))
VER(Exists(z0, z1), t) → c14(OR(ver(z1, cons(z0, t)), ver(z1, t)), VER(z1, cons(z0, t)), VER(z1, t))
K tuples:none
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, MAIN, IN, VER
Compound Symbols:
c7, c8, c10, c11, c12, c13, c14
(3) CdtGraphRemoveDanglingProof (ComplexityIfPolyImplication transformation)
Removed 2 of 7 dangling nodes:
MAIN(z0) → c8(VER(z0, nil))
VER(Var(z0), t) → c11(IN(z0, t))
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(OR(eq(z0, z1), in(z0, z2)), EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(OR(ver(z0, t), ver(z1, t)), VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(NOT(ver(z0, t)), VER(z0, t))
VER(Exists(z0, z1), t) → c14(OR(ver(z1, cons(z0, t)), ver(z1, t)), VER(z1, cons(z0, t)), VER(z1, t))
S tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(OR(eq(z0, z1), in(z0, z2)), EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(OR(ver(z0, t), ver(z1, t)), VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(NOT(ver(z0, t)), VER(z0, t))
VER(Exists(z0, z1), t) → c14(OR(ver(z1, cons(z0, t)), ver(z1, t)), VER(z1, cons(z0, t)), VER(z1, t))
K tuples:none
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(5) CdtGraphRemoveTrailingProof (BOTH BOUNDS(ID, ID) transformation)
Removed 5 trailing tuple parts
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
S tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
K tuples:none
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(7) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
We considered the (Usable) Rules:none
And the Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(EQ(x1, x2)) = [3]
POL(Exists(x1, x2)) = 0
POL(IN(x1, x2)) = [4]x2
POL(Not(x1)) = [2]
POL(Or(x1, x2)) = [3]
POL(VER(x1, x2)) = 0
POL(c10(x1, x2)) = x1 + x2
POL(c12(x1, x2)) = x1 + x2
POL(c13(x1)) = x1
POL(c14(x1)) = x1
POL(c7(x1)) = x1
POL(cons(x1, x2)) = [2] + x2
POL(s(x1)) = [3]
POL(t) = 0
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
S tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
K tuples:
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(EQ(x1, x2)) = [1] + x2 + x1·x2
POL(Exists(x1, x2)) = 0
POL(IN(x1, x2)) = x2 + x1·x2
POL(Not(x1)) = 0
POL(Or(x1, x2)) = 0
POL(VER(x1, x2)) = 0
POL(c10(x1, x2)) = x1 + x2
POL(c12(x1, x2)) = x1 + x2
POL(c13(x1)) = x1
POL(c14(x1)) = x1
POL(c7(x1)) = x1
POL(cons(x1, x2)) = [1] + x1 + x2
POL(s(x1)) = [1] + x1
POL(t) = 0
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
S tuples:
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
K tuples:
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(11) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
VER(Not(z0), t) → c13(VER(z0, t))
We considered the (Usable) Rules:none
And the Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(EQ(x1, x2)) = [2] + [2]x2
POL(Exists(x1, x2)) = x2
POL(IN(x1, x2)) = [4]x2
POL(Not(x1)) = [4] + x1
POL(Or(x1, x2)) = x1 + x2
POL(VER(x1, x2)) = [2]x1
POL(c10(x1, x2)) = x1 + x2
POL(c12(x1, x2)) = x1 + x2
POL(c13(x1)) = x1
POL(c14(x1)) = x1
POL(c7(x1)) = x1
POL(cons(x1, x2)) = [4] + x1 + x2
POL(s(x1)) = x1
POL(t) = [2]
(12) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
S tuples:
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
K tuples:
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
VER(Not(z0), t) → c13(VER(z0, t))
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(13) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
VER(Exists(z0, z1), t) → c14(VER(z1, t))
We considered the (Usable) Rules:none
And the Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(EQ(x1, x2)) = [3]
POL(Exists(x1, x2)) = [2] + x2
POL(IN(x1, x2)) = x2
POL(Not(x1)) = x1
POL(Or(x1, x2)) = x1 + x2
POL(VER(x1, x2)) = [2]x1
POL(c10(x1, x2)) = x1 + x2
POL(c12(x1, x2)) = x1 + x2
POL(c13(x1)) = x1
POL(c14(x1)) = x1
POL(c7(x1)) = x1
POL(cons(x1, x2)) = [4] + x2
POL(s(x1)) = 0
POL(t) = [2]
(14) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
S tuples:
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
K tuples:
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(15) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
We considered the (Usable) Rules:none
And the Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(EQ(x1, x2)) = [3]
POL(Exists(x1, x2)) = x2
POL(IN(x1, x2)) = [4]x2
POL(Not(x1)) = x1
POL(Or(x1, x2)) = [4] + x1 + x2
POL(VER(x1, x2)) = [1] + [4]x1 + [2]x2
POL(c10(x1, x2)) = x1 + x2
POL(c12(x1, x2)) = x1 + x2
POL(c13(x1)) = x1
POL(c14(x1)) = x1
POL(c7(x1)) = x1
POL(cons(x1, x2)) = [1] + x1 + x2
POL(s(x1)) = 0
POL(t) = [1]
(16) Obligation:
Complexity Dependency Tuples Problem
Rules:
not(tt) → ff
not(ff) → tt
or(tt, z0) → tt
or(ff, z0) → z0
eq(0, 0) → tt
eq(s(z0), 0) → ff
eq(0, s(z0)) → ff
eq(s(z0), s(z1)) → eq(z0, z1)
main(z0) → ver(z0, nil)
in(z0, nil) → ff
in(z0, cons(z1, z2)) → or(eq(z0, z1), in(z0, z2))
ver(Var(z0), t) → in(z0, t)
ver(Or(z0, z1), t) → or(ver(z0, t), ver(z1, t))
ver(Not(z0), t) → not(ver(z0, t))
ver(Exists(z0, z1), t) → or(ver(z1, cons(z0, t)), ver(z1, t))
Tuples:
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
S tuples:none
K tuples:
IN(z0, cons(z1, z2)) → c10(EQ(z0, z1), IN(z0, z2))
EQ(s(z0), s(z1)) → c7(EQ(z0, z1))
VER(Not(z0), t) → c13(VER(z0, t))
VER(Exists(z0, z1), t) → c14(VER(z1, t))
VER(Or(z0, z1), t) → c12(VER(z0, t), VER(z1, t))
Defined Rule Symbols:
not, or, eq, main, in, ver
Defined Pair Symbols:
EQ, IN, VER
Compound Symbols:
c7, c10, c12, c13, c14
(17) SIsEmptyProof (EQUIVALENT transformation)
The set S is empty
(18) BOUNDS(O(1), O(1))